import axios from 'axios'
import {Message} from 'element-ui'
import router from "../router";

// axios.defaults.headers['Content-Type'] = 'application/json'

const service = axios.create({
  baseURL: process.env.BASE_API, // api 的 url
  timeout: 50000 // 请求超时时间
})

// request拦截器
service.interceptors.request.use( config => {
  if (localStorage.getItem('token')) {
    config.headers.token = localStorage.getItem('token');
  }
  return config;
}, function (error) {
  // 对请求错误做些什么
  // Message.error('参数错误')
  return Promise.reject(error);
});

// 自定义添加响应拦截器
service.interceptors.response.use(response => {
  // 对响应数据做点什么
  if (response.data.code === 500) {
    Message.error(response.data.msg)
    window.localStorage.removeItem("loginName");
    window.localStorage.removeItem("token"); // 删除已经失效或过期的token（不删除也可以，因为登录后覆盖）
    router.push({
      path: '/login' // 到登录页重新获取token
    })
  } else if (response.data.token) { // 判断token是否存在，如果存在说明需要更新token
    Storage.localSet('token', response.data.token) // 覆盖原来的token(默认一天刷新一次)
  }
  return response;
}, function (error) {
  // 对响应错误做点什么
  if(error.response.status == 401 || error.response.status == 402){
    Message.error('请重新登录')
    router.push('/login')
  }
  return Promise.reject(error)
});


export default service

